package com.linzelin.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * 自动填充配置类
 */
@Component
// 配置类肯定是要丢到SpringBoot去自动填充的,所以需要添加到IOC容器中
@Slf4j
// 这个就是单纯的配置下日志而已
public class MyMetaObjectHandler implements MetaObjectHandler {
    /**
     * 插入时候的填充策略
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("开始添加的自动填充操作 ... ");
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
        // 这2行对应的就是自动填充的操作了
        /**
         * 第一个参数是传递我们的字段名
         * 第二个参数传递的就是时间了
         * 第三个直接将对应的方法参数传递进去即可
         */
    }

    /**
     * 更新时候的填充策略
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("修改时候的自动填充启动ing ... ");
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
}
